Video decoder with slice dependency decoding and methods for use therewith

ABSTRACT

A video decoder includes an entropy decoding device that includes a first processor that generates entropy decoded (EDC) data from an encoded video signal, wherein the encoded video signal includes a plurality of video layers, wherein the entropy decoding device includes a slice dependency module that generates slice dependency data and wherein the first processor entropy decodes a selected subset of the plurality of video layers, based on the slice dependency data. A general video decoding device includes a second processor that generates a decoded video signal from the EDC data.

CROSS REFERENCE TO RELATED PATENTS

The present U.S. Utility Patent Application claims priority pursuant to35 USC 119(e) to the provisionally tiled application entitled, “VIDEODECODER WITH GENERAL VIDEO DECODING DEVICE AND METHODS FOR USETHEREWITH,” (Attorney Docket No. VIXS183), having U.S. Utility patentapplication Ser. No 61/449,461, filed on Mar. 4, 2011, pending, which ishereby incorporated herein by reference in its entirety and made part ofthe present U.S. Utility Patent Application for all purposes.

TECHNICAL FIELD OF THE INVENTION

The present invention relates to coding used in devices such as videodecoders for video signals.

DESCRIPTION OF RELATED ART

Video encoding has become an important issue for modern video processingdevices. Robust encoding algorithms allow video signals to betransmitted with reduced bandwidth and stored in less memory. However,the accuracy of these encoding methods face the scrutiny of users thatare becoming accustomed to greater resolution and higher picturequality. Standards have been promulgated for many encoding methodsincluding the H.264 standard that is also referred to as MPEG-4, part 10or Advanced Video Coding, (AVC). While this standard sets forth manypowerful techniques, further improvements are possible to improve theperformance and speed of implementation of such methods. The videosignal encoded by these encoding methods must be similarly decoded forplayback on most video display devices.

The Motion Picture Expert Group (MPEG) has presented a Scalable VideoCoding (SVC) Annex G extension to H.264/MPEG-4 AVC for standardization.SVC provides for encoding of video bitstreams that include subsetbitstreams that can represent lower spatial resolution, lower temporalresolution or otherwise lower quality video. A subset bitstream can bederived by dropping packets from the total bitstream. SVC streams allowend devices to flexibly scale the temporal resolution, spatialresolution or video fidelity, for example, to match the capabilities ofa particular device.

Efficient and fast encoding and decoding of video signals is importantto the implementation of many video devices, particularly video devicesthat are destined for home use. Further limitations and disadvantages ofconventional and traditional approaches will become apparent to one ofordinary skill in the art through comparison of such systems with thepresent invention.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIGS. 1-3 present pictorial diagram representations of various videodevices in accordance with embodiments of the present invention.

FIG. 4 presents a block diagram representation of a video system inaccordance with an embodiment of the present invention.

FIG. 5 presents a block diagram representation of a video decoder 102 inaccordance with an embodiment of the present invention.

FIG. 6 presents a block diagram representation of a pipeline processingof video signals in accordance with an embodiment of the presentinvention.

FIG. 7 presents a block diagram representation of an entropy decodingdevice 140 in accordance with an embodiment of the present invention.

FIG. 8 presents a block diagram representation of a plurality of videolayers in accordance with an embodiment of the present invention.

FIG. 9 presents a block diagram representation of a general videodecoder 150 in accordance with an embodiment of the present invention.

FIG. 10 presents a block diagram representation of a decoding process inaccordance with an embodiment of the present invention.

FIG. 11 presents a block diagram representation of a decoding process inaccordance with another embodiment of the present invention.

FIG. 12 presents a block diagram representation of a video distributionsystem 375 in accordance with an embodiment of the present invention.

FIG. 13 presents a block diagram representation of a video storagesystem 179 in accordance with an embodiment of the present invention.

FIG. 14 presents a flow diagram representation of a method in accordancewith an embodiment of the present invention.

FIG. 15 presents a flow diagram representation of a method in accordancewith an embodiment of the present invention.

FIG. 16 presents a flow diagram representation of a method in accordancewith an embodiment of the present invention.

FIG. 17 presents a flow diagram representation of a method in accordancewith an embodiment of the present invention.

FIG. 18 presents a flow diagram representation of a method in accordancewith an embodiment of the present invention.

PRESENTLY PREFERRED EMBODIMENTS

FIGS. 1-3 present pictorial diagram representations of various videodevices in accordance with embodiments of the present invention. Inparticular, set top box 10 with built-in digital video recorderfunctionality or a stand alone digital video recorder, television ormonitor 20 and portable computer 30 illustrate electronic devices thatincorporate a video decoder in accordance with one or more features orfunctions of the present invention. While these particular devices areillustrated, the present invention can be implemented in any device thatis capable of decoding and/or transcoding video content in accordancewith the methods and systems described in conjunction with FIGS. 4-18and the appended claims.

FIG. 4 presents a block diagram representation of a video decoder 102 inaccordance with an embodiment of the present invention. In particular,this video device includes a receiving module 100, such as a server,cable head end, television receiver, cable television receiver,satellite broadcast receiver, broadband modem, 3G transceiver or otherinformation receiver or transceiver that is capable of receiving areceived signal 98 and generating a video signal 110 that has beenencoded via a video encoding format. Video processing device 125includes video decoder 102 and is coupled to the receiving module 100 todecode or transcode the video signal for storage, editing, and/orplayback in a format corresponding to video display device 104. Videoprocessing device can include set top box 10 with built-in digital videorecorder functionality or a stand alone digital video recorder. Whileshown as a separate from video display device 104, video processingdevice 125, including video decoder 102 can be incorporated intelevision or monitor 20 and portable computer 30 of other device thatincludes a video decoder, such as video decoder 102.

In an embodiment of the present invention, the received signal 98 is abroadcast video signal, such as a television signal, high definitiontelevision signal, enhanced definition television signal or otherbroadcast video signal that has been transmitted over a wireless medium,either directly or through one or more satellites or other relaystations or through a cable network, optical network or othertransmission network. In addition, received signal 98 can be generatedfrom a stored video file, played back from a recording medium such as amagnetic tape, magnetic disk or optical disk, and can include astreaming video signal that is transmitted over a public or privatenetwork such as a local area network, wide area network, metropolitanarea network or the Internet.

Video signal 110 can include a digital video signal complying with adigital video codec standard such as H.264, MPEG-4 Part 10 AdvancedVideo Coding (AVC) including a SVC signal, an encoded stereoscopic videosignal having a base layer that includes a 2D compatible base layer andan enhancement layer generated by processing in accordance with an MVCextension of MPEG-4 AVC, or another digital format such as a MotionPicture Experts Group (MPEG) format (such as MPEG1, MPEG2 or MPEG4),Quicklime format, Real Media format, Windows Media Video (WMV) or AudioVideo interleave (AVI), video coding one (VC-1), etc.

Video display devices 104 can include a television, monitor, computer,handheld device or other video display device that creates an opticalimage stream either directly or indirectly, such as by projection, basedon the processed video signal 112 either as a streaming video signal orby playback of a stored digital video file.

FIG. 5 presents a block diagram representation of a video decoder 102 inaccordance with an embodiment of the present invention. Video decoder102 includes an entropy decoding device 140 having a processing module142 that generates entropy decoded (EDC) data 146 from an encoded videosignal such as video signal 110. General video decoding device 150includes a processing module 152 that generates a decoded video signal,such as processed video signal 112, from the EDC data 146. The EDC data146 cart include run length data, motion vector differential data, andmacroblock header data and/or other data that results from the entropydecoding of an encoded video signal. In particular, the encoded videosignal can include a plurality of video layers, such as an MVCstereoscopic signal, an SVC signal or other multi-layer video signal andthe EDC data 146 can include slice header data corresponding to at leastone of the plurality of video layers.

In an embodiment of the present invention, the entropy decoding device140 and the general video decoding device 150 operate contemporaneouslyin a pipelined process where the general video decoding device 150generates a first portion of the decoded video signal during at least aportion of time that the entropy decoding device 140 generates EDC data146 from a second portion of the encoded video signal.

The processing modules 142 and 152 can each be implemented using asingle processing device or a plurality of processing devices. Such aprocessing device may be a microprocessor, co-processors, amicro-controller, digital signal processor, microcomputer, centralprocessing unit, field programmable gate array, programmable logicdevice, state machine, logic circuitry, analog circuitry, digitalcircuitry, and/or any device that manipulates signals (analog and/ordigital) based on operational instructions that are stored in a memory,such as memory modules 144 and 154. These memories may each be a singlememory device or a plurality of memory devices. Such a memory device caninclude a hard disk drive or other disk drive, read-only memory, randomaccess memory, volatile memory, non-volatile memory, static memory,dynamic memory, flash memory, cache memory, and/or any device thatstores digital information. Note that when the processing modules 142and 152 implement one or more of their functions via a state machine,analog circuitry, digital circuitry, and/or logic circuitry, the memorystoring the corresponding operational instructions may be embeddedwithin, or external to, the circuitry comprising the state machine,analog circuitry, digital circuitry, and/or logic circuitry.

FIG. 6 presents a block diagram representation of a pipeline processingof video signals in accordance with an embodiment of the presentinvention. Time progresses from left to right. EDC processing viaprocessor 142 is presented in a first row where successive portions ofthe encoded video signal [N, N+1, N+2, N+3, . . . ] are processed insequence during processing periods [EDC N, EDC N+1, EDC N+2, EDC N+3, .. . ]. Further, general video decoder (GVD) processing via processingmodule 152 is shown in a second row. Successive portions of the EDC data146 [EDC data N, EDC data N+1, EDC data N+2, EDC data N+3, . . . ] areprocessed in sequence during processing periods [GVD N, GVD N+1, GVDN+2, GVD N+3, . . . ].

In operation, processing module 142 generates entropy decoded (EDC) dataN from the Nth portion of an encoded video signal, during processingtime EDC N. Similarly and in sequence, processing module 142 generatesentropy decoded EDC data N+1, EDC data N+2, EDC data N+3 from theportions N+1, N+2, N+3 of an encoded video signal, during processingtimes EDC N+1, EDC N+2, and EDC N+3, respectively. Processing module 152processes the entropy decoded (EDC) data N into the Nth portion ofdecoded video signal, during processing time GVD N. Similarly and insequence, processing module 152 processes entropy decoded EDC data N+1,EDC data N+2, EDC data N+3 into portions N+1, N+2, N+3 of the decodedvideo signal, during processing times GVD N+1, GVD N+2, and GVD N+3,respectively.

As shown, the EDC processing (syntax decoding) and GVD processing(non-syntax related coding) are performed contemporaneously, inparallel, and in a pipelined fashion. In particular, the Nth portion ofthe decoded video signal is processed from the Nth EDC datacontemporaneously by the GVD device 150 during at least a portion oftime that the EDC device 140 generates the N+1 EDC data from the N+1portion of the encoded video signal.

In an embodiment of the present invention, the portions of video signals110 and processed video signal and 112 are pictures (frames/fields) ofthe video signals, however, larger portions, such as a group of picturesor smaller portions such as macroblocks or groups of macroblocks orother portion sizes could likewise be employed.

FIG. 7 presents a block diagram representation of an entropy decodingdevice 140 in accordance with an embodiment of the present invention. Inparticular, entropy decoding device 140 includes a processing module 142and a memory module 144 as described in conjunction with FIG. 5. Inaddition, the entropy decoding device 140 further includes a bus 121, asignal interface 148, entropy decoding module 186, reordering module 188and optional slice dependency module 190. In operation, the signalinterface 148 receives video signal 110 and optionally buffers andpreprocesses the video signal for processing by the other modules ofentropy decoding device 140. Similarly, the EDC data generated viaprocessing by the other modules of entropy decoding device 140 isoptionally buffered, such as via a ring buffer or other buffer structureimplemented in conjunction with memory locations of memory module 144and formatted for output as EDC data 146 to interface with general videodecoder 150.

The entropy decoding module 186 and reordering module 188 operate toperform arithmetic decoding, context adaptive binary arithmetic coding(CABAC) decoding, huffman decoding, run length decoding and/or otherentropy decoding an reordering of the encoded video signal into EDC data146 such as run length data, motion vector differential data, andmacroblock header data and/or other data that results from the entropydecoding of an encoded video signal.

In an embodiment of the present invention, the entropy decoding module186, reordering module 188 and slice dependency module 190 areimplemented using software stored in memory module 144 and executed viaprocessing module 142. In alternative embodiments the entropy decodingmodule 186, reordering module 188 and slice dependency module 190 areoptionally implemented via other hardware, software or firmware. Thus,while a particular bus architecture is shown that represents thefunctionally of communication between the various modules of entropydecoding device 140, other architectures can be implemented inaccordance with the broad scope of the present invention.

As discussed in conjunction with FIG. 5, the encoded video signal caninclude a plurality of video layers, such as an MVC stereoscopic signal,an SVC signal or other multi-layer video signal and the EDC data 146 caninclude slice header data corresponding to at least one of the pluralityof video layers.

FIG. 8 presents a block diagram representation of a plurality of M videolayers of an encoded video signal, such as video signal 110, inaccordance with an embodiment of the present invention.

Optional slice dependency module 190 operates on these video layers togenerate slice dependency data. This slice dependency data is used bythe processing module 142 to control the entropy decoding of a selectedsubset of the plurality of video layers, based on the slice dependencydata. In an embodiment of the present invention, the slice dependencymodule 190 operates to decode the slice headers of each of the videolayers before the slice data is entropy decoded. The slice dependencymodule 190 extracts dependency data from a slice header for each of theplurality of video layers that indicates the dependency of each layer.This dependency data includes, for example, and indication of the videolayers that each video layer is directly dependent on as well as videolayers that each layer is indirectly dependent on.

Consider an example with where M=4, and the direct dependencies of eachvideo layer are expressed in conjunction with the following dependencydata derived each layers dependency quality identification data (DQ ID):

-   -   Layer 4, (dependent on Layer 3)    -   Layer 3, (dependent on Layer 1)    -   Layer 2, (dependent on Layer 1)    -   Layer 1, (no dependencies)

The slice dependency module 190 extracts each layers DO ID and generatesthe following slice dependency data from that indicates both direct andindirect dependencies by following the chain of dependencies from eachlayer:

-   -   Layer 4, (dependent on Layers 3, 1)    -   Layer 3, (dependent on Layer 1)    -   Layer 2, (dependent on Layer 1)    -   Layer 1, (no dependencies)

When the decoder 102 is decoding a target layer, the slice dependencydata can be used to generate a selected subset of the video layersrequired to decode the target layer. Following with the example above,if the target layer is layer 4, a subset of the layers that includesonly layers 4, 3 and 1 need only be EDC and GVD decoded. Because layer 4is not dependent on layer 2, either directly or directly, this layer canbe excluded from the selected subset of layers and need not be EDC orGVD decoded. In another example, where layer 2 is the target layer, asubset of the layers that includes only layers 2 and 1 need be EDC andGVD decoded. Layers 4 and 3 can be excluded from the selected subset oflayers and need not be EDC or GVD decoded.

It should also be noted that the slice dependency data generated byslice dependency module 190 indicates an ordering of the layer decoding.In particular, the layers are decoded in reverse order of theirdependency. In the example above, where the target layer 4 is selected,the layers are EDC and GVD decoded in the order 1-3-4. Similarly, wherethe target layer 2 is selected, the layers are EDC and GVD decoded inthe order 1-2. This saves memory space and decoding time of the layersthat are not necessary to the final decoded video signal.

FIG. 9 presents a block diagram representation of a general videodecoder 150 in accordance with an embodiment of the present invention.In particular, general video decoding device 150 includes a processingmodule 152 and a memory module 154 as described in conjunction with FIG.5. In addition, the general video decoding device 150 further includes abus 221, a signal interface 158, decode motion compensation module 204,neighbor management module 218, deblocking filter module 222, inversetransform and quantization module 220, inverse intra prediction module211 and optional resampling module 224. In operation, the signalinterface 158 receives EDC data 146 and optionally buffers andpreprocesses the EDC data 146 for processing by the other modules ofgeneral video decoding device 150. Similarly, the decoded video signalgenerated via processing by the other modules of general video decodingdevice 150 is optionally buffered, such as via a ring butler or otherbuffer structure implemented in conjunction with memory locations ofmemory module 154 and formatted for output as processed video signal112.

The decode motion compensation module 204, neighbor management module218, deblocking filter module 222, inverse transform and quantizationmodule 220, inverse intra prediction module 211 and optional resamplingmodule 224 operate to decode the EDC data 146 in accordance with a videostandard such as H.264 (including MVC and/or SVC), VC-1 or othercompression standard. In an embodiment of the present invention, thedecode motion compensation module 204, neighbor management module 218,deblocking filter module 222, inverse transform and quantization module220, inverse intra prediction module 211 and optional resampling module224 are implemented using software stored in memory module 154 andexecuted via processing module 152. In alternative embodiments thedecode motion compensation module 204, neighbor management module 218,deblocking filter module 222, inverse transform and quantization module220, inverse intra prediction module 211 and optional resampling module224 are optionally implemented via other hardware, software or firmware.Thus, while a particular bus architecture is shown that represents thefunctionally of communication between the various modules of generalvideo decoding device 150, other architectures can be implemented inaccordance with the broad scope of the present invention.

In operation, neighbor management module 218 generates motion vectordata, macroblock mode data and deblock strength data, based on themotion vector differential data and the macroblock header data. In anembodiment of the present invention, a data structure, such as a linkedlist, array or one or more registers are used to associate and storeneighbor data for each macroblock of a processed picture. In particular,the neighbor management module 218 stores the motion vector data for agroup of macroblocks that neighbor a current macroblock and generatesthe motion vector data for the current macroblock based on both themacroblock mode data and the motion vector data for the group ofmacroblocks that neighbor the current macroblock. In addition, theneighbor management module calculates a motion vector magnitude andadjusts the deblock strength data based on the motion vector magnitude.

The decode motion compensation module generates inter-prediction databased on the motion vector data when the macroblock mode data indicatesan inter-prediction mode. The inverse intra-prediction module 211,generates intra-prediction data when the macroblock mode data indicatesan intra-prediction mode. The inverse transform/quantization module 220generates reconstructed picture data based on the nm length data and onthe inter-prediction data when the macroblock mode data indicates aninter-prediction mode and based on the run length data and on theintra-prediction data when the macroblock mode data indicates anintra-prediction mode.

The deblocking filter module 222 generates the decoded video signal fromthe reconstructed picture data, based on the deblock strength data. Inoperation, the deblocking filter 222 operates to smooth horizontal andvertical edges of a block that may correspond to exterior boundaries ofa macroblock of a frame or field of video signal 110 or edges that occurin the interior of a macroblock. A boundary strength, that is determinedbased on quantization parameters, adjacent macroblock type, etcetera,can vary the amount of filtering to be performed. In addition, the H.264standard defines two parameters, α and β that are used to determine thestrength of filtering on a particular edge. The parameter α is aboundary edge parameter applied to data that includes macroblockboundaries. The parameter β interior edge parameter applied to data thatwithin a macroblock interior.

According to the H.264 standard, α and β are selected as integers withinthe range [−6, 6] based on the average of the quantization parameters,QP, of the two blocks adjacent to the edge. In particular, α and β areincreased for large values of QP and decreased for smaller values of QP.In accordance with the present invention however, non-quantizationcoding parameters such a motion vector magnitude are used by neighbormanagement module 218 to generate deblock strength data that adjusts thevalues for α and β for deblocking filter module 222. For instance, whenthe motion vector magnitude indicates large motion vectors, e.g.magnitudes above a first magnitude threshold, a larger value of a can beselected. Further, motion vector magnitude indicates small motionvectors, e.g. magnitudes below the same or other threshold, a smallervalue of a can be selected.

FIG. 10 presents a block diagram representation of a decoding process inaccordance with an embodiment of the present invention. In thisembodiment, the Neighbor management module 218 receives macroblockheader and motion vector differential data 230 from the EDC data 146.The neighbor management module 218 checks the macroblock (MB) mode fromthe MB header. In inter-prediction mode, the neighbor management module218 calculates motion vectors, passes the motion vectors to the decodemotion compensation module 204 and triggers the decode motioncompensation module 204 to generate inter-prediction data based onreference frames 262 retrieved via a frame buffer of memory 154. Inintra-prediction mode, the neighbor management module 218 triggers theinverse intra prediction module 211 to generate intra-prediction databased on data from the inverse quantization and transform module 220.Neighbor management module 218 also calculates deblock strength datathat is passed to deblocking filter module 222.

The inverse transform and quantization module 220 inverse quantizes andinverse transforms run level data 272 from EDC data 146, via inversequantization module 274 and inverse transform module 276, to generateresidual data. The residual data is combined, via combination module284, with either intra-prediction data or intra-prediction data suppliedby mode switch 213 in response to the mode determination by neighbormanagement module 218, to generate current reconstructed frames/fields264 that are buffered in the frame buffer.

Deblocking filter module 222 applies deblocking filtering in accordancewith the deblock strength data from neighbor management module 218 togenerate decoded video output in the form of filtered pictures 226.

FIG. 11 presents a block diagram representation of a decoding process inaccordance with another embodiment of the present invention. In thisembodiment, however the encoded video signal includes a plurality ofvideo layers and the EDC data 146 further includes slice header data 270corresponding to the plurality of video layers being processed. Asdiscussed in conjunction with FIG. 7 and 8, the processing of a targetlayer can include processing of layer data for the target layer anddependent layers, but can exclude processing of other layers that thetarget layer does not depend on, either directly. or indirectly.Optional resampling module 224 is included to receive the residual data278 via buffer 292 from inverse transform and quantization module 220,and to generate the resampled residual data based on the residual datathat is passed back to inverse transform and quantization module 220 tobe used to generate the current reconstructed frames/fields 264. Theresampling module 224 further generates the decoded video signal, as acombined picture 228 based on the filtered picture data 226 from&blocking filter module 222 via buffer 290. Buffers 290 and 292 can beimplemented via a frame buffer or other buffer.

In operation, the resampling module can upscale buffered filteredpictures 226 and residual data 278 for dependent layers for combinationwith higher layers such as the target layer. In an embodiment of thepresent invention, the resampling module 224 generates the resampledresidual data based on a difference in resolution between the currentlayer and a target layer of the plurality of layers of the encoded videosignal. In particular, the resampling module 224 upscales the residualdata 278 to generate the resampled residual data at a resolution of thetarget layer. In addition, the resampling module 224 generates resampledfiltered picture data from the filtered picture data 226 by upscalingthe filtered picture data from the resolution of the current layer tothe resolution of the target layer. Further the resampling module 224generates a combined picture 228 of the decoded video signal bycombining filtered picture data 226 of the target layer with resampledfiltered picture data of each of the dependent layers of the encodedvideo signal.

In an example of operation, the encoded video signal includes twolayers, a base layer and an enhancement layer. In this example, thevideo decoder 102 selects the target layer as the enhancement layer forhigher resolution output. When processing the base layer of a picture,residual data 278 for the base layer is buffered in buffer 292. Thereconstructed picture for the base layer is generated by inversetransform and quantization module 220 based on the base layer residualdata. This reconstructed base layer picture is filtered via debockingfilter 222 to produce a filtered base layer picture that is buffered viabuffer 290.

When the enhancement layer is processed, the resampling module 224retrieves the base layer residual data from the buffer 292 and generatesupscaled residual data for the base layer that is passed to thecombining module 284. The reconstructed picture for the enhancementlayer is generated by inverse transform and quantization module 220based on the upscaled base layer residual data and the enhancement layerresidual data. The reconstructed enhancement layer picture is filteredvia deblocking filter 222 to produce a filtered enhancement layerpicture 226 that is buffered via buffer 290. The resampling module 224upscales the filtered base layer picture and combines it with thefiltered enhancement layer picture to generate the combined picture 228.

FIG. 12 presents a block diagram representation of a video distributionsystem 375 in accordance with an embodiment of the present invention. Inparticular, video signal 110 is transmitted from a video encoder via atransmission path 122 to a video decoder 102. The video decoder 102operates to decode the video signal 110 for display on a display devices12 or 14 or other display device. In an embodiment of the presentinvention, video decoder 102 can be implemented in a set-top box,digital video recorder, router or home gateway. In the alternative,decoder 102 can optionally be incorporated directly in the displaydevice 12 or 14.

The transmission path 122 can include a wireless path that operates inaccordance with a wireless local area network protocol such as an 802.11protocol, a WIMAX protocol, a Bluetooth protocol, etc. Further, thetransmission path can include a wired path that operates in accordancewith a wired protocol such as a Universal Serial Bus protocol, anEthernet protocol or other high speed protocol.

FIG. 13 presents a block diagram representation of a video storagesystem 179 in accordance with an embodiment of the present invention. Inparticular, device 11 is a set top box with built-in digital videorecorder functionality, a stand alone digital video recorder, a DVDrecorder/player or other device that stores the video signal 110. Inthis configuration, device 11 can include video decoder 102 thatoperates to decode the video signal 110 when retrieved from storage togenerate a processed video signal 112 in a format that is suitable fordisplay by video display device 12 or 14. While these particular devicesare illustrated, video storage system 179 can include a hard drive,flash memory device, computer, DVD burner, or any other device that iscapable of generating, storing, decoding, transcoding and/or displayingthe video content of video signal 110 in accordance with the methods andsystems described in conjunction with the features and functions of thepresent invention as described herein.

FIG. 14 presents a block diagram representation of a method inaccordance with an embodiment of the present invention. In particular, amethod is presented for use in conjunction with one or more functionsand features described in conjunction with FIGS. 1-9. In step 400, firstentropy decoded (EDC) data is generated from a first portion of anencoded video signal via a first processor. In step 402, second EDC datais generated from a second portion of the encoded video signal via thefirst processor. In step 404, a first portion of a decoded video signalis generated from the first EDC data via a second processorcontemporaneously during at least a portion of time that the firstprocessor generates the second EDC data from the second portion of theencoded video signal.

In an embodiment of the present invention, the first portion of theencoded video signal corresponds to a first picture and wherein thesecond portion of the encoded video signal corresponds to a secondpicture. The second picture can be subsequent in time to the firstpicture in the encoded video signal. The first EDC data can includefirst run length data, first motion vector differential data, and firstmacroblock header data. The encoded video signal can include a pluralityof video layers and the first EDC data includes slice header datacorresponding to at least one of the plurality of video layers. Theencoded video signal can be encoded in accordance with at least one of:an H.264 encoding standard, and a video coding 1 (VC-1) encodingstandard.

FIG. 15 presents a block diagram representation of a method inaccordance with an embodiment of the present invention. In particular, amethod is presented for use in conjunction with one or more functionsand features described in conjunction with FIGS. 1-10. In step 410,third EDC data is generated from a third portion of the encoded videosignal via the first processor. In step 412, a second portion of adecoded video signal is generated from the second EDC data via thesecond processor contemporaneously during at least a portion of timethat the first processor generates the third EDC data from the thirdportion of the encoded video signal.

FIG. 16 presents a block diagram representation of a method inaccordance with an embodiment of the present invention. In particular, amethod is presented for use in conjunction with one or more functionsand features described in conjunction with FIGS. 1-9. In step 420,entropy decoded (EDC) data is generated from an encoded video signal viaa first processor, wherein the EDC data includes run length data, motionvector differential data, and macroblock header data. In step 422, adecoded video signal is generated from the EDC data via a secondprocessor by: generating motion vector data, macroblock mode data anddeblock strength data, based on the motion vector differential data andthe macroblock header data; generating inter-prediction data based onthe motion vector data when the macroblock mode data indicates aninter-prediction mode; generating intra-prediction data when themacroblock mode data indicates an intra-prediction mode; generatingreconstructed picture data based on the run length data and on theinter-prediction data when the macroblock mode data indicates aninter-prediction mode; generating reconstructed picture data based onthe run length data and on the intra-prediction data when the macroblockmode data indicates an intra-prediction mode; and generating the decodedvideo signal from the reconstructed picture data, based on the deblockstrength data.

In an embodiment of the present invention, step 422 includes generatingthe motion vector data for a group of macroblocks that neighbor acurrent macroblock, and generating the motion vector data for thecurrent macroblock, based on both the macroblock mode data, and themotion vector data for the group of macroblocks that neighbor thecurrent macroblock. Step 422 can also include calculating a motionvector magnitude, and adjusting the deblock strength data based on themotion vector magnitude. Step 422 can also include adjusting at leastone deblock filter parameter based on the deblock strength data, anddeblock filtering the reconstructed picture data based on at least onedeblock filter parameter.

The encoded video signal can include a plurality of video layers and thefirst EDC data includes slice header data corresponding to at least oneof the plurality of video layers. The encoded video signal can beencoded in accordance with at least one of an H.264 encoding standardand a video coding 1 (VC-1) encoding standard.

FIG. 17 presents a block diagram representation of a method inaccordance with an embodiment of the present invention. In particular, amethod is presented for use in conjunction with one or more functionsand features described in conjunction with FIGS. 1-9. In step 430,entropy decoded (EDC) data is generated from an encoded video signal,wherein the encoded video signal includes a plurality of video layers,and wherein the EDC data is generated by: generating slice dependencydata; and entropy decoding a selected subset of the plurality of videolayers, based on the slice dependency data. In step 432, a decoded videosignal is generated from the EDC data.

In an embodiment of the present invention, the slice dependency data isgenerated by extracting dependency data from a slice header for each ofthe plurality of video layers. The decoded video signal can also begenerated in accordance with a target layer of the plurality of videolayers that is included in the selected subset of the plurality of videolayers, and the slice dependency data can be generated by identifyingdependent layers of the plurality of video layers that are dependentfrom the target layer.

The dependent layers can include each of the plurality of video layersdirectly dependent from the target layer, and further, each of theplurality of video layers indirectly dependent from the target layer.The selected subset of the plurality of video layers excludes each ofthe plurality of video layers that is not directly dependent from thetarget layer or indirectly dependent from the target layer.

Step 430 can include selecting an ordering of the selected subset of theplurality of video layers, wherein the selected subset of the pluralityof video layers are entropy decoded in accordance with the selectedordering. The encoded video signal can be encoded in accordance with atleast one of: an H.264 encoding standard and a video coding 1 (VC-1)encoding standard.

FIG. 18 presents a block diagram representation of a method inaccordance with an embodiment of the present invention. In particular, amethod is presented for use in conjunction with one or more functionsand features described in conjunction with FIGS. 1-9. In step 440,entropy decoded (EDC) data is generated from an encoded video signal viaa first processor, wherein the EDC data slice header data, run lengthdata, motion vector differential data, and macroblock header data,wherein the encoded video signal includes a plurality of video layers.In step 442, a decoded video signal is generated from the EDC data via asecond processor by: generating motion vector data, macroblock mode dataand deblock strength data, based on the motion vector differential dataand the macroblock header data; generating inter-prediction data basedon the motion vector data when the macroblock mode data indicates aninter-prediction mode; generating intra-prediction data when themacroblock mode data indicates an intra-prediction mode; generatingresidual data. based on the run length data; generating resampledresidual data based on the residual data and the slice header data;generating reconstructed picture data based on the resampled residualdata and on the inter-prediction data when the macroblock mode dataindicates an inter-prediction mode; generating reconstructed picturedata based on the resampled residual data and on the intra-predictiondata when the macroblock mode data indicates an intra-prediction mode;generating filtered picture data from the reconstructed picture data,based on the deblock strength data; and generating the decoded videosignal based on the filtered picture data and the slice header data.

Step 432 can include analyzing the slice header data to determine acurrent layer of the plurality of layers; and generating the resampledresidual data based on a difference in resolution between the currentlayer and a target layer of the plurality of layers. Step 432 can alsoinclude upscaling the residual data to generate the resampled residualdata at a resolution of the target layer. Step 432 can include analyzingthe slice header data to determine a current layer of the plurality oflayers; and generating resampled filtered picture data from the filteredpicture data, based on a difference in resolution between the currentlayer and a target layer of the plurality of layers.

Sep 432 can include upscaling the filtered picture data to generate theresampled filtered picture data at a resolution of the target layer andgenerating a picture of the decoded video signal by combining resampledfiltered picture data of at least one layer of the plurality of layerswith filtered picture data of the target layer.

The encoded video signal can be encoded in accordance with at least oneof: an H.264 encoding standard and a video coding 1 (VC-1) encodingstandard.

While particular combinations of various functions and features of thepresent invention have been expressly described herein, othercombinations of these features and functions are possible that are notlimited by the particular examples disclosed herein are expresslyincorporated in within the scope of the present invention.

As one of ordinary skill in the art will appreciate, the term“substantially” or “approximately”, as may be used herein, provides anindustry-accepted tolerance to its corresponding term and/or relativitybetween items. Such an industry-accepted tolerance ranges from less thanone percent to twenty percent and corresponds to, but is not limited to,component values, integrated circuit process variations, temperaturevariations, rise and fall times, and/or thermal noise. Such relativitybetween items ranges from a difference of a few percent to magnitudedifferences. As one of ordinary skill in the art will furtherappreciate, the term “coupled”, as may be used herein, includes directcoupling and indirect coupling via another component, element, circuit,or module where, for indirect coupling, the intervening component,element, circuit, or module does not modify the information of a signalbut may adjust its current level, voltage level, and/or power level. Asone of ordinary skill in the art will also appreciate, inferred coupling(i.e., where one element is coupled to another element by inference)includes direct and indirect coupling between two elements in the samemanner as “coupled”. As one of ordinary skill in the art will furtherappreciate, the term “compares favorably”, as may be used herein,indicates that a comparison between two or more elements, items,signals, etc., provides a desired relationship. For example, when thedesired relationship is that signal 1 has a greater magnitude thansignal 2, a favorable comparison may be achieved when the magnitude ofsignal 1 is greater than that of signal 2 or when the magnitude ofsignal 2 is less than that of signal 1.

As the term module is used in the description of the various embodimentsof the present invention, a module includes a functional block that isimplemented in hardware, software, and/or firmware that performs one ormodule functions such as the processing of an input signal to produce anoutput signal. As used herein, a module may contain submodules thatthemselves are modules.

Thus, there has been described herein an apparatus and method, as wellas several embodiments including a preferred embodiment, forimplementing a video decoder. Various embodiments of the presentinvention herein-described have features that distinguish the presentinvention from the prior art.

It will be apparent to those skilled in the art that the disclosedinvention may be modified in numerous ways and may assume manyembodiments other than the preferred forms specifically set out anddescribed above. Accordingly, it is intended by the appended claims tocover all modifications of the invention which fall within the truespirit and scope of the invention.

1. A video decoder comprising: an entropy decoding device that includesa first processor that generates entropy decoded (EDC) data from anencoded video signal, wherein the encoded video signal includes aplurality of video layers, wherein the entropy decoding device includesa slice dependency module that generates slice dependency data andwherein the first processor entropy decodes a selected subset of theplurality of video layers, based on the slice dependency data; a generalvideo decoding device, coupled to the entropy decoding device, thatincludes a second processor that generates a decoded video signal fromthe EDC data.
 2. The video decoder of claim I wherein the slicedependency module generates the slice dependency data by extractingdependency data from a slice header for each of the plurality of videolayers.
 3. The video decoder of claim 1 wherein the general videodecoding device generates the decoded video signal in accordance with atarget layer of the plurality of video layers that is included in theselected subset of the plurality of video layers; wherein the slicedependency module further generates the slice dependency data byidentifying dependent layers of the plurality of video layers that aredependent from the target layer.
 4. The video decoder of claim 3 whereinthe dependent layers includes each of the plurality of video layersdirectly dependent from the target layer.
 5. The video decoder of claim4 wherein the dependent layers further includes each of the plurality ofvideo layers indirectly dependent from the target layer.
 6. The videodecoder of claim 3 wherein the selected subset of the plurality of videolayers excludes each of the plurality of video layers that is not atleast one of: directly dependent from the target layer; and indirectlydependent from the target layer.
 7. The video decoder of claim 1 whereinthe slice dependency module selects an ordering of the selected subsetof the plurality of video layers; and wherein the first processordecodes the selected subset of the plurality of video layers inaccordance with the selected ordering.
 8. The video decoder of claim 1wherein the encoded video signal is encoded in accordance with at leastone of: an H.264 encoding standard and a video coding 1 (VC-1) encodingstandard.
 9. A method comprising: generating entropy decoded (EDC) datafrom an encoded video signal, wherein the encoded video signal includesa plurality of video layers, and wherein the EDC data is generated by:generating slice dependency data; and entropy decoding a selected subsetof the plurality of video layers, based on the slice dependency data;and generating a decoded video signal from the EDC data.
 10. The methodof claim 9 wherein the slice dependency data is generated by extractingdependency data from a slice header for each of the plurality of videolayers.
 11. The method of claim 9 wherein the decoded video signal isgenerated in accordance with a target layer of the plurality of videolayers that is included in the selected subset of the plurality of videolayers; and wherein the slice dependency data is generated byidentifying dependent layers of the plurality of video layers that aredependent from the target layer.
 12. The method of claim 11 wherein thedependent layers includes each of the plurality of video layers directlydependent from the target layer.
 13. The method of claim 12 wherein thedependent layers further includes each of the plurality of video layersindirectly dependent from the target layer.
 14. The method of claim 12wherein the selected subset of the plurality of video layers excludeseach of the plurality of video layers that is not at least one of:directly dependent from the target layer; and indirectly dependent fromthe target layer.
 15. The method of claim 9 wherein the EDC data isfurther generated by: selecting an ordering of the selected subset ofthe plurality of video layers; and wherein the selected subset of theplurality of video layers are entropy decoded in accordance with theselected ordering.
 16. The method of claim 9 wherein the encoded videosignal is encoded in accordance with at least one of: an H.264 encodingstandard and a video coding 1 (VC-1) encoding standard.